
/**
 * 开始时间置灰条件
 * @param { String} endDate  结束日期(不传可做单个日期选择框用)
 * @param { Boolean } noSelectBeforeTime 不可以选择以前的日期 不传,默认可以选择
 * @param { Boolean } includeNowTime 是否包含当前天
 * @returns 
 */
function pickerStartTime(endDate, noSelectBeforeTime, includeNowTime = true) {
  // includeNowTime: true(包含当前天) false(不包含当前天)
  let nowTime = includeNowTime ? Date.now() -3600 * 24 *1000 : Date.now()
  return {
    disabledDate: (time) => { 
      // 如果有结束时间,则不可以大于结束时间
      if (endDate) {
        let endTime = endDate.replace(/-/g, "/");
        // 不可以选择以前的日期
        if(noSelectBeforeTime) {
          return time.getTime() > new Date(endTime) || time.getTime() < nowTime
        } else {
          // 可以选择以前的日期
          return time.getTime() > new Date(endTime)
        } 
      } else {
        // 不可以选择以前的日期
        if(noSelectBeforeTime) {
          return time.getTime() < nowTime 
        }
      }
    },
  };
}

/**
 * 结束时间置灰条件
 * @param { String} startDate  开始日期(不传可做单个日期选择框用)
 * @param { Boolean } noSelectBeforeTime 不可以选择以前的日期 不传,默认可以选择
 * @param { Boolean } includeNowTime 是否包含当前天
 * @returns 
 */
function  pickerEndTime(startDate, noSelectBeforeTime, includeNowTime = true) {
    // includeNowTime: true(包含当前天) false(不包含当前天)
    let nowTime = includeNowTime ? Date.now() -3600 * 24 *1000 : Date.now()
    return {
      disabledDate: (time) => {
      // 如果有开始时间,则不可以小于开始时间
        if (startDate) {
          let startTime = startDate.replace(/-/g,"/");
          // 不可以选择以前的日期
          if(noSelectBeforeTime) {
            return time.getTime() < new Date(startTime) || time.getTime() < nowTime
          } else {
            // 可以选择以前的日期
            return time.getTime() < new Date(startTime)
          } 
        } else {
          // 不可以选择以前的日期
          if(noSelectBeforeTime) {
            return time.getTime() < nowTime 
          }
        }
      },
    };
  }
export {
  pickerStartTime,
  pickerEndTime
}